# 梯度下降
#  W（t+1）(上标)（j）(下标) = W（t）(上标)（j）(下标) - η ×gradient（j）(下标)
# 这里的 Wj 就是θ中的某一个 j=0…n，这里的η就是图里的 learning step，
# 很多时候也叫学习率 learning rate，很多时候也用α表示，这个学习率我们可以看作是下山迈的步子的大小，步子迈的大下山就快
# 学习率设置的学问
# 学习率的设置是门学问，一般我们会把它设置成一个比较小的正整数，0.1、0.01、0.001、0.0001，都是常见的设定数值，
# 一般情况下学习率在整体迭代过程中是一直不变的数，但是也可以设置成随着迭代次数增多学习率逐渐变小，因为越靠近山谷我们就可以步子迈小点，
# 省得走过，还有一些深度学习的优化算法会自己控制调整学习率这个值
# 梯度下降法流程
# 1. 瞎蒙，Random 随机θ，随机一组数值 W0…Wn
# 2. 求梯度，为什么是梯度？因为梯度代表曲线某点上的切线的斜率，沿着切线往下下降就相当于沿着坡度最陡峭的方向下降
# 3. if g<0, theta 变大，if g>0, theta 变小
# 4. 判断是否收敛 convergence，如果收敛跳出迭代，如果没有达到收敛，回第2步继续
